package com.gxa.weixing.portal.service;

import com.gxa.weixing.core.exception.BusinessException;
import com.gxa.weixing.core.pojo.*;
import com.gxa.weixing.core.service.BaseService;

import java.util.List;
import java.util.Map;

/**
 * @Author HHT
 * 2022/1/6
 */
public interface GoodsService extends BaseService<Goods> {

    /**
     * 查詢全部商品，前台展示
     * @return
     */
    List<Goods> findAll();

    /**
     * 根据id查询商品的详细信息
     * @param id
     * @return
     */
    GoodDetailVO selectById(Long id);

    /**
     * 把商品添加到购物车(也可以是减少)
     * @param goods
     * @param id
     * @param type 类型，如果穿的是0代表减1，如果穿的是1，代表加1
     */
    void addGoodToCart(Goods goods,Long id,Integer type);

    /**
     * 查询用户的购物车的商品列表
     * @param id
     * @return
     */
    List<GetGoodsFromCartVO> findAllFromCart(Long id);


    /**
     * 把商品才能够购物车删除
     * @param list 要删除的商品id
     * @param userId
     */
    void deleteGoodFromCart(List<Long> list,Long userId);

    /**
     * 获取兑换商品列表
     * @return
     */
    List<ForGoods> exchangeGoodsList();

    /**
     * 获取兑换商品的详细信息
     * @param id
     * @return
     */
  ForGoodsDetailVo selectByIdForGoods(Long id);

    /**
     * 用户购买兑换商品
     * @param id
     * @param userId
     */
  void byExchangeGoods(Long id,Long userId) throws BusinessException;


}
